Object oriented programming is a computer programming packaging technique which provides reusable and easily expandable programs. In a traditional procedural program, emphasis is placed on methods to be conducted on particular data sets. By contrast, in an object oriented program, emphasis is placed on data. As is well known to those having skill in the art of object oriented programming, object oriented programs are composed of various types of "objects".
An object is a data structure, also referred to as a "frame", and a set of operations or functions, also referred to as "methods", for accessing and manipulating the data structure. Objects having identical data structures and common behavior can be grouped together into, and collectively identified as a "class." Objects are instances created from a particular class. Each object inherits the data structure and methods of the particular class from which it was instantiated. A hierarchical inheritance relationship exists between multiple classes. For example, one class may be considered a "parent" of another class (the "child" of the parent class). The child class is said to be "derived" from the parent class and inherits all of the attributes and methods of the parent class.
Increasingly, developers are utilizing a team approach in developing object oriented program applications. Component-based development is quickly becoming the focus of many new development efforts. In this type of development, team members working on an application share components stored in libraries to build applications. Components are basically encapsulated software objects, or specifications capable of creating such objects, providing some type of known service that can be used in combination with other components to build applications.
TeamConnection is a software product of International Business Machines, Inc. that provides a team development environment that includes the following: configuration management; version management; change management; and build support for developing multi-tier, multi-language applications across platforms. TeamConnection provides a single repository for development data including reusable parts such as JavaBeans and ActiveX, source code such as C++, COBOL and Java, web applets, HTML documents, end user documentation, test cases, and modeled objects. Envy is another software product of International Business Machines, Inc. that provides a multi-user development environment for application development using the object oriented programming languages Smalltalk and Java. Envy provides version control and configuration management for multiple developers across several platforms.
Envy and TeamConnection individually facilitate parallel development involving multiple developers. Each provides various mechanisms for allowing developers to access the same objects or components in a corresponding library at the same time without negatively affecting the work of others. Each also mediates changes made to objects by multiple developers and for controlling the versions of objects stored in the library.
In multi-user development environments, newer versions of various objects are often transferred between developers from one development environment to another. Often, these objects are transferred via files that are large in size. Because objects and components within object oriented programming environments are versioned, each version of an object or component is typically stored within the object oriented programming environment. This may require considerable storage capacity within the object oriented programming environment.